package co.edu.unal.unlbs.persistence.entities;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.Set;


/**
 * The persistent class for the Persona database table.
 * 
 */
@Entity
public class Persona implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="user_persona")
	private String userPersona;

	@Column(name="carrera_persona")
	private String carreraPersona;

	@Column(name="e_mail_persona")
	private String eMailPersona;

	@Column(name="edad_persona")
	private int edadPersona;

    @Temporal( TemporalType.DATE)
	@Column(name="fecha_nac_persona")
	private Date fechaNacPersona;

    @Lob()
	@Column(name="foto_persona")
	private byte[] fotoPersona;

	@Column(name="nombre_persona")
	private String nombrePersona;

	@Column(name="pwd_persona")
	private String pwdPersona;

	@Column(name="rol_persona")
	private String rolPersona;

	@Column(name="semestre_persona")
	private int semestrePersona;

	//bi-directional many-to-many association to Asignatura
    @ManyToMany
	@JoinTable(
		name="Inscripcion"
		, joinColumns={
			@JoinColumn(name="cod_persona")
			}
		, inverseJoinColumns={
			@JoinColumn(name="cod_asignatura")
			}
		)
	private Set<Asignatura> asignaturas;

	//bi-directional many-to-many association to Area_Intere
    @ManyToMany
	@JoinTable(
		name="hobby"
		, joinColumns={
			@JoinColumn(name="persona")
			}
		, inverseJoinColumns={
			@JoinColumn(name="area_interes")
			}
		)
	private Set<Area_Intere> areaInteres;

    public Persona() {
    }

	public String getUserPersona() {
		return this.userPersona;
	}

	public void setUserPersona(String userPersona) {
		this.userPersona = userPersona;
	}

	public String getCarreraPersona() {
		return this.carreraPersona;
	}

	public void setCarreraPersona(String carreraPersona) {
		this.carreraPersona = carreraPersona;
	}

	public String getEMailPersona() {
		return this.eMailPersona;
	}

	public void setEMailPersona(String eMailPersona) {
		this.eMailPersona = eMailPersona;
	}

	public int getEdadPersona() {
		return this.edadPersona;
	}

	public void setEdadPersona(int edadPersona) {
		this.edadPersona = edadPersona;
	}

	public Date getFechaNacPersona() {
		return this.fechaNacPersona;
	}

	public void setFechaNacPersona(Date fechaNacPersona) {
		this.fechaNacPersona = fechaNacPersona;
	}

	public byte[] getFotoPersona() {
		return this.fotoPersona;
	}

	public void setFotoPersona(byte[] fotoPersona) {
		this.fotoPersona = fotoPersona;
	}

	public String getNombrePersona() {
		return this.nombrePersona;
	}

	public void setNombrePersona(String nombrePersona) {
		this.nombrePersona = nombrePersona;
	}

	public String getPwdPersona() {
		return this.pwdPersona;
	}

	public void setPwdPersona(String pwdPersona) {
		this.pwdPersona = pwdPersona;
	}

	public String getRolPersona() {
		return this.rolPersona;
	}

	public void setRolPersona(String rolPersona) {
		this.rolPersona = rolPersona;
	}

	public int getSemestrePersona() {
		return this.semestrePersona;
	}

	public void setSemestrePersona(int semestrePersona) {
		this.semestrePersona = semestrePersona;
	}

	public Set<Asignatura> getAsignaturas() {
		return this.asignaturas;
	}

	public void setAsignaturas(Set<Asignatura> asignaturas) {
		this.asignaturas = asignaturas;
	}
	
	public Set<Area_Intere> getAreaInteres() {
		return this.areaInteres;
	}

	public void setAreaInteres(Set<Area_Intere> areaInteres) {
		this.areaInteres = areaInteres;
	}
	
}